home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9611 / 000159_owner-urn-ietf _Thu Nov 14 08:55:31 1996.msg < prev    next >
Internet Message Format  |  1997-02-19  |  12KB

  1. Received: (from daemon@localhost) by services.bunyip.com (8.6.10/8.6.9) id IAA23126 for urn-ietf-out; Thu, 14 Nov 1996 08:55:31 -0500
  2. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1]) by services.bunyip.com (8.6.10/8.6.9) with SMTP id IAA23116 for <urn-ietf@services.bunyip.com>; Thu, 14 Nov 1996 08:54:45 -0500
  3. Received: from josef.ifi.unizh.ch by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  4.         id AA19360  (mail destined for urn-ietf@services.bunyip.com); Thu, 14 Nov 96 08:54:05 -0500
  5. Received: from ifi.unizh.ch by josef.ifi.unizh.ch 
  6.           id <00564-0@josef.ifi.unizh.ch>; Thu, 14 Nov 1996 14:51:53 +0100
  7. Subject: Re: [URN] I18N does not belong in URNs
  8. To: Dirk.vanGulik@jrc.it
  9. Date: Thu, 14 Nov 1996 14:51:52 +0100 (MET)
  10. Cc: FisherM@is3.indy.tce.com, moore@cs.utk.edu, girod@LCS.MIT.EDU,
  11.         tallen@fsc.fujitsu.com, urn-ietf@bunyip.com
  12. In-Reply-To: <9611141038.AA01418@ jrc.it> from "Dirk vanGulik" at Nov 14, 96 11:38:37 am
  13. Mime-Version: 1.0
  14. Content-Type: text/plain; charset=US-ASCII
  15. Content-Transfer-Encoding: 7bit
  16. Content-Length: 10713
  17. From: Martin J Duerst <mduerst@ifi.unizh.ch>
  18. Message-Id: <"josef.ifi..786:14.10.96.13.51.59"@ifi.unizh.ch>
  19. Sender: owner-urn-ietf@services.bunyip.com
  20. Precedence: bulk
  21. Reply-To: Martin J Duerst <mduerst@ifi.unizh.ch>
  22. Errors-To: owner-urn-ietf@bunyip.com
  23.  
  24. Dirk.vanGulik wrote:
  25.  
  26. >> Dirk.vanGulik wrote:
  27. >> >Or they use a naming scheme dependent interpretation. You could for
  28. >> >example simply limit the representation of the URN to the glyphs
  29. >> >A-Z, 0-9 and say the dot, dash, and colon. 
  30. >> 
  31. >> Too much in favor of English users (+Hawaiian and Suwaheli)!
  32. >
  33. >Well as a dutch person working in italy in a swiss building; I
  34. >can quite live with it :-) No just kidding, but seriously why
  35. >does this 'favour' ? And where does it come in ?
  36.  
  37. This has been mentionned before: name spaces in the English-speaking
  38. world usually contain letters and numbers, and their mapping to
  39. the URN syntax you propose above would be straightforward.
  40. Neither the designer of an URN namespace nor the actual users
  41. would have to think much about it.
  42. Name spaces in countries that use other scripts quite often
  43. contain letters in these scripts. Mapping to the URN syntax
  44. you propose above would not directly be possible. Namespace
  45. designers would invent their own schemes, and namespace users
  46. would have to learn all kinds of different conventions for
  47. different namespaces.
  48.  
  49. I hope that you see that this favors English-speaking users
  50. (and to a lesser extent other users of the Latin script).
  51.  
  52.  
  53. >> > I recently came across a specific scheme, say 'crdis' which has a lot of
  54. >> > LocalControlIdentfiers which can (only be fully) expressed in 2-byte octets. 
  55. >> > This obviously gave problems as some of our z39.50 servers and HTTP/URN 
  56. >> > resolving code did not quite like this. A pragmatic solution was to simply
  57. >> > base64 encode the identfication string.
  58. >
  59. >> > A specialist GUI could now base64-decode the string to arrive 
  60. >> > at something meaningfull for a human. But it does not have to. 
  61. >> > And it does keep things simple.
  62. >> I have mentionned earlier the possibility that some namespaces may
  63. >> contain arbitrary data, as opposed to characters, and I have therefore
  64. >
  65. >Hold on, I was trying to convey that these strings did _INDEED_ contain
  66. >meaningfull text;
  67.  
  68. You only said they contained 2-byte octets. This could be the resource
  69. number of a system icon, or whatever.
  70.  
  71. >auctually the various 'strings' where short 
  72. >titles in the 19 european languages; carefully protected.
  73.  
  74. Probably you have to explain more details for us to get the full
  75. picture of this example. Anyway, if they originally were short
  76. titles, i.e. character strings, why invent a complicated name
  77. space specific mapping to URNs? Why not just define a default
  78. mapping (i.e. UTF-8 + %HH) for all possible characters (i.e.
  79. the full ISO 10646 UCS-4)?
  80.  
  81. >The same could be said of my phone number
  82. >
  83. >    +39 332 78 0014
  84. >
  85. >Which tells a local here that it is me, living in Ispra(78), near Varse
  86. >(33*)in italy(39). But for most people those digits make no sense all,
  87. >nor have to. And my local phone technician might even tell me more by
  88. >just looking at it.
  89.  
  90. We are not really talking about meaning here. What we are talking
  91. about is the mapping of existing namespaces (however meaningful
  92. or meaningless they are to whoever) to URNs.
  93.  
  94.  
  95. >> >I really would like to roll up the charset discussion; I agree that for a lot
  96. >> >of scheme's, in particular those to be grandfathered in, one will need very
  97. >> >flexible encodings.
  98. >> They need to be very flexible in the sense that they have to be
  99. >> able to accomodate a very large set of characters, and something
  100. >> else than characters in some cases.
  101. >
  102. >Well, that is a requirement I do not find in the functional RQ RFC at
  103. >all. Should that be re-written ? I agree that publishers and maintainers
  104. >might like to 'overload' the content; but that is a different issue.
  105.  
  106. The RQ RFC clearly states that we have to be able to grandfather
  107. existing namespaces. We can do this mainly in two ways:
  108.  
  109. - Not defining a mapping from arbitrary characters of the
  110.     universal character set to our URN syntax, and just
  111.     tell namespace designers: Solve the problem for yourself.
  112.     In theory, the grandfathering requirement is satisfied
  113.     (even if we restrict syntax to only two different characters).
  114.     The problem is that namespace implementors have to come
  115.     up with their own ideas of how to map characters to URNs,
  116.     resulting in chaos and inconvenience for everybody.
  117.     With this, we get rid of the grandfathering requirement
  118.     by delegating it, but we do not really do our job.
  119.  
  120. - Defining a mapping from the characters of the universal
  121.     character set (UCS) to URN syntax. This will make
  122.     implementing existing namespaces in URNs much easier.
  123.     We really deal with the grandfathering requirement,
  124.     we don't just pass it around like a hot potato
  125.     (it's not hot and quite easy to handle anyway).
  126.     We seriously do our job as well as we are possibly
  127.     able to do it. We avoid chaos where there is absolutely
  128.     no need for chaos.
  129.  
  130. >Hmm, I think we have a slight terminology clash; much like the problems
  131. >we have had with the URL rfc. There are several layers, which their
  132. >own dimensions. In URLs (correct me if I am wrong Larry) this is solved
  133. >by saying that the acutal URL is an octet-stream. These 8-bit encoded
  134. >values are all there is. However by 'pure coincidence' they can be
  135. >treated as indexes into a charset such as US-Asicc or latin-1 and
  136. >actually yeild something which humans can interpret quite easily.
  137. >
  138. >But for example the first 5 values (say http:) are not the glyph
  139. >'h', 't', p'p and ':' but the values 68747470 or 4854545. (Upper/
  140. >lowercase),
  141.  
  142. You got it the wrong way round; please reread RFC 1738 if you don't
  143. believe me. URLs are defined as strings of characters that can
  144. exist on paper or iside a computer (in ASCII or EBCDIC or whatever).
  145. This means that in the URL RFC, the "is" is used for the representING
  146. side. The representED side are indeed octets that appear in a protocol.
  147.  
  148. The fact that you got terminology wrong while you did not say
  149. much that was actually wrong (if one is restricted to ASCII,
  150. which is the case more often than not) shows that writing
  151. what URL/Ns "are" can lead to a lot of confusion.
  152.  
  153. The fact that you mention several layers also indicates that
  154. it is dangerous to make one of these layers special by using
  155. the verb "to be". Different people tend to identify different
  156. layers as the most important one.
  157.  
  158. In my terminology, RFC 1738 says:
  159.  
  160. (1) URLs are represented by characters (on paper, in ASCII, in
  161.     EBCDIC, or whatever).
  162. (2) URLs represent octets of some protocols.
  163.  
  164. RFC 1738 also defines the mapping from the octets in (2)
  165. to the characters in (1).
  166.  
  167.  
  168. What we need for URNs is at least:
  169.  
  170. (1) URNs are represented by characters (on paper, in ASCII,...)
  171.     from the same set as used in URLs.
  172. (2) URNs (in general) represent characters (from UCS-4).
  173.  
  174. The mapping from the large character set in (2) to the small
  175. character set in (1) has to be defined. The one and only
  176. existing and reasonable proposal for this is to use UTF-8
  177. and combined with some octet encoding such as %HH.
  178.  
  179.  
  180. >So what I was saying is that the URN is an octet stream; and the
  181. >allowed values are from ox30 to 0x39, 0x41--0x5a etc. Which happen
  182. >to represent indexes into latin-1, UTF-8 or ascii.
  183.  
  184. But not EBCDIC. For those that have difficulties separating the
  185. different layers, and have difficulties immagining something such
  186. as Japanese, there is an easy trick: Think about EBCDIC. If you
  187. don't at least think about how to handle things in EBCDIC, the
  188. chances are big that you will forget some important aspect of
  189. the problem.
  190.  
  191.  
  192. >Now a clever administrator (and a clever GUI) can use something like
  193. >base64 to get a nice UniCode string in.
  194.  
  195. We don't want the administrator to have to come up with such a mapping,
  196. and we don't want or need to have many different mappings. By just
  197. a little bit of effort from our side, we don't need administrators
  198. to be overly 'clever', and we need GUIs to only support exactly one
  199. kind of presentation conversion (which will really soon be available
  200. in the average Web browser) instead of dozens, hundreds, or thousands
  201. of them (which no Web browser will ever support).
  202.  
  203. I could live with the definition that an URN "is" an octet stream
  204. if we add (as we have in the current version of the syntax draft)
  205. a specification for how characters from the universal character
  206. set (UCS) should be encoded into URN octets.
  207.  
  208.  
  209. >> >    3. And keep a few chars (say the %) in stock, for the future.
  210. >
  211. >> >    4. And remember, one can always make something like a next generation
  212. >> >       URN+:das:asd which can only be transcribed properly using say UTF8.
  213. >> There is absolutely no need to wait any longer for UTF-8.
  214. >Well, I can agree; but not for the premisse; I do not see the need 
  215. >for the charset flexibilit. I know people can get quite religious about
  216. >their names; so you have a point that we should be flexible to accomodate,
  217. >but on the other hand it does make implementation harder whilst the
  218. >functionality does not increase a bit.
  219.  
  220. It's not about peoples' names, unless you consider that a namespace
  221. suitable for URNs. It's about actually existing namespaces that contain
  222. characters beyond the set you are proposing.
  223. As for implementation, you are free to provide your browser with a %HH
  224. interface only. For the current syntax draft, you would have to add
  225. a routine that checks for the occurrence of 8-bit bytes, and you
  226. would have to convert them to %HH before comparison. That's about
  227. five lines of C code, not really a hard thing to do.
  228. As for implementing a user interface that allows input and rendering
  229. of the full universal character set (UCS), that indeed is quite
  230. some work, but (1) there is no need to provide full implementation
  231. of all characters, (2) as far as it is needed, it will be done
  232. anyway in the average browser because of requirements from other
  233. protocols and formats (such as HTML), and (3) implementing this
  234. is still tremendously simpler than implementing GUIs for all the
  235. 'clever' encoding systems that all those 'clever' administrators
  236. have come up with.
  237.  
  238.  
  239. >> All your requirements can be fulfilled by:
  240. >> - Allowing non-character namespaces to create their own non UTF-8 encodings
  241. >>     (as I have suggested previously).
  242. >> - Require that internally, all 8-bit octets resulting from UTF-8 encoding
  243. >>     of characters beyond ASCII (+some in ASCII) be encoded with
  244. >>     %HH, so that there is no 8-bit from of URNs.
  245. >> Although I have good reasons to think that the second point is not needed,
  246. >> I could live with it. But giving up a convention such as UTF-8 to map
  247. >> arbitrary characters in namespaces to URNs would be a great loss.
  248. >
  249. >Well I think I do not see those requirements; but perhaps we should look
  250. >at the RQ RFC again, to see what possibly is missing.
  251.  
  252. The above requirements are possible refinements of the general requirements
  253. for grandfathering and transcribability.
  254.  
  255.  
  256. Regards,    Martin.